package com.tianyu.inspection.common.component;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tianyu.inspection.entity.*;

/**********************************
 * @Author YSW
 * @Description
 * @Date 2021/8/19 - 18:40
 **********************************/

public interface Validate {
    /**
     * 校验 对象ID数组各项是否均存在于数据库
     * @param mapper
     * @param type
     * @param <T>
     * @return 校验不通过为true, 通过为false
     */
    default <T> boolean validateIdArray(BaseMapper<T> mapper, String type){
        return false;
    }

    /**
     * 上传图片校验[1.路径是否真实存在, 2.文件类别是否对应]
     *
     * @param category 文件类别
     * @param path     文件OSS路径
     * @return 校验不通过为true, 通过为false
     */
    default boolean uploadImageValidate(int category, String path){
        return false;
    }

    /**
     * 校验 遥测
     * @param path
     * @return
     */
    default boolean uploadTelemetryValidate(String path){
        return false;
    }

    /**
     * 上传客户端软件校验[1.路径是否真实存在, 2.文件类别是否对应]
     *
     * @param path 文件OSS路径
     * @return 校验不通过为true, 通过为false
     */
    default boolean uploadClientValidate(String path){
        return false;
    }

    /**
     * 校验任务ID
     * @param id
     * @param projectId
     * @return
     */
    default boolean flyTaskIdValidate(int id, int projectId){
        return false;
    }

    /**
     * 校验险情处理ID
     * @param id
     * @param projectId
     * @return
     */
    default boolean dangerProcessIdValidate(int id, int projectId){
        return false;
    }

    /**
     * 校验险情ID
     * @param id
     * @param projectId
     * @return
     */
    default boolean dangerIdValidate(int id, int projectId){
        return false;
    }

    /**
     * 校验巡线员ID
     * @param id
     * @param projectId
     * @return
     */
    default boolean inspectorIdValidate(int id, int projectId){
        return false;
    }

    /**
     * 校验用户ID
     * @param id
     * @param projectId
     * @return
     */
    default boolean userIdValidate(int id, int projectId){
        return false;
    }

    /**
     * 校验施工作业区编号是否存在
     * @param number
     * @param projectId
     * @return
     */
    default ConstructionUnits constructionUnitsNumberValidate(String number, int projectId){
        return null;
    }

    /**
     * 校验摄像头编号
     * @param number
     * @param projectId
     * @return
     */
    default Camera cameraNumberValidate(String number, int projectId){
        return null;
    }

    /**
     * 校验高后果区编号
     * @param number
     * @param projectId
     * @return
     */
    default HighConsequenceAreas highConsequenceAreasNumberValidate(String number, int projectId){
        return null;
    }

    /**
     * 校验桩牌编号
     * @param number
     * @param projectId
     * @return
     */
    default PileCard pileCardNumberValidate(String number, int projectId){
        return null;
    }

    /**
     * 校验通用设施编号
     * @param number
     * @param projectId
     * @return
     */
    default GeneralFacilities generalFacilitiesNumberValidate(String number, int projectId){
        return null;
    }

    /**
     * 校验通用设施ID
     * @param generalFacilitiesId
     * @return
     */
    default boolean generalFacilitiesIdValidate(int generalFacilitiesId){
        return false;
    }

    /**
     * 校验桩牌类型ID
     * @param pileCardTypeId
     * @return
     */
    default boolean pileCardTypeIdValidate(int pileCardTypeId){
        return false;
    }

    /**
     * 校验高后果区类型ID
     * @param highConsequenceAreasTypeId
     * @return
     */
    default boolean highConsequenceAreasTypeIdValidate(int highConsequenceAreasTypeId){
        return false;
    }

    /**
     * 校验施工作业区类型ID
     * @param constructionTypeId
     * @return
     */
    default boolean constructionTypeIdValidate(int constructionTypeId){
        return false;
    }

    /**
     * 校验摄像头类型ID
     * @param cameraTypeId
     * @return
     */
    default boolean cameraTypeIdValidate(int cameraTypeId){
        return false;
    }

    /**
     * 校验险情类型ID
     * @param dangerTypeId
     * @return
     */
    default boolean dangerTypeIdValidate(int dangerTypeId){
        return false;
    }

    /**
     * 校验险情等级ID
     * @param dangerTypeId
     * @return
     */
    default boolean dangerLevelIdValidate(int dangerTypeId){
        return false;
    }

    /**
     * 项目ID是否存在
     * @param projectId
     * @return
     */
    default boolean projectIdValidate(int projectId){
        return false;
    }

    /**
     * 管线ID校验
     * @param pipelineId 
     * @param projectId
     * @return
     */
    default boolean pipelineIdValidate(int pipelineId, int projectId){
        return false;
    }

    /**
     * 场站ID校验
     * @param pipelineStationId 
     * @param projectId
     * @return
     */
    default boolean pipelineStationIdValidate(int pipelineStationId, int projectId){
        return false;
    }

    /**
     * 云平台登录校验
     * @param cpAccessKey 云平台Key
     * @param cpAccessValue 云平台KEY对应密钥
     * @return ture 为校验失败
     */
    default boolean validateCpAccount(String cpAccessKey, String cpAccessValue){
        return false;
    }

    /**
     * 御空登录校验
     * @param ykAccessKey 御空Key
     * @param ykAccessValue 御空Key对应密钥
     * @return ture 为校验失败
     */
    default boolean validateYkAccount(String ykAccessKey, String ykAccessValue){
        return false;
    }
}
